package org.scboy.coobi.db.mapping;

import org.scboy.utils.annotations.coobi.NoLength;

/**
 * 数据类型映射接口
 */
public interface DataTypeMapping {
	
	 /**
	  * Unicode定长字符
	  * @return
	  */
	 String NCHAR();
	 
	 /**
	  * Unicode变长字符
	  * @return
	  */
	 String NVARCHAR();
	 
	 /**
	  * 8位长度整数
	  * @return
	  */
	 @NoLength
	 String TINYINT();
	 
	 /**
	  * 16位长度整数
	  * @return
	  */
	 @NoLength
	 String SMALLINT(); 
	 
	 /**
	  * 32位长度整数
	  * @return
	  */
	 @NoLength
	 String INT();
	 
	 /**
	  * 64位长度整数
	  * @return
	  */
	 @NoLength
	 String LONG();
	 
	 /**
	  * 变长二进制
	  * @return
	  */
	 @NoLength
	 String VARBINARY();
	 
	 /**
	  * 定长二进制
	  * @return
	  */
	 @NoLength
	 String BINARY();
	 
	 /**
	  * 非Unicode定长字符
	  * @return
	  */
	 String CHAR(); 
	 
	 /**
	  * 非Unicode变长字符
	  * @return
	  */
	 String VARCHAR();
	 
	 /**
	  * 精确精度浮点数
	  * @return
	  */
	 @NoLength
	 String DECIMAL();
	 
	 /**
	  * 单精度浮点数
	  * @return
	  */
	 @NoLength
	 String FLOAT();
	 
	 /**
	  * 双精度浮点数
	  * @return
	  */
	 @NoLength
	 String DOUBLE();
	 
	 /**
	  * 布尔类型
	  * @return
	  */
	 @NoLength
	 String BOOLEAN();
	 
	 /**
	  * 精确到日的日期格式
	  * @return
	  */
	 @NoLength
	 String DATE();
	 
	 /**
	  * 24小时日期格式
	  * @return
	  */
	 @NoLength
	 String TIME();
	 
	 /**
	  * 精确到毫秒的日期格式
	  * @return
	  */
	 @NoLength
	 String DATETIME();
	 
	 /**
	  * 大型二进制数据格式
	  * @return
	  */
	 @NoLength
	 String BLOB();
	 
	 /**
	  * 非Unicode大文本格式
	  * @return
	  */
	 @NoLength
	 String TEXT();
	 
	 /**
	  * Unicode大文本格式
	  * @return
	  */
	 @NoLength
	 String NTEXT();
}
